package com.etoak.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.concurrent.ExecutionException;

/**
 * Checklist库知识主表实体类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("checklist_main_knowledge")
public class CheckList implements Serializable {

    @TableField("id")
    private String id;

    @TableField("title")
    private String title;

    @TableField ("encoding")
    private String encoding;

    @TableField("territory_id")
    private String territoryId;

    @TableField("territory_name")
    private String territoryName;

    @TableField("product_line_id")
    private String productLineId;

    @TableField("product_line_name")
    private String productLineName;

    @TableField("product_id")
    private String productId;

    @TableField("product_name")
    private String productName;

    @TableField("label_id")
    private String labelId;

    @TableField("label_name")
    private String labelName;

    //应用场景(多)
    @TableField("application_scenarios")
    private String applicationScenarios;

    @TableField("common_tag")
    private String commonTag;

    @TableField("associated_design")
    private String associatedDesign;

    @TableField("associated_typical")
    private String associatedTypical;

    @TableField("del_status")
    private Integer delStatus;

    @TableField("status")
    private Integer status;

    @TableField("version")
    private String version;

    @TableField("is_must")
    private String isMust;

    @TableField("create_by")
    private String createBy;

    @TableField("create_time")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @TableField("update_by")
    private String updateBy;

    //@Excel(name = "更新时间")
    @TableField("update_time")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    @TableField("description")
    private String description;

    @TableField("collected_time")
    private Integer collectedTime;

    @TableField("quoted_time")
    private Integer quotedTime;

    @TableField("browse_time")
    private Integer browseTime;

    /*修改理由*/
    @TableField(exist = false)
    private String updateReason;

    /*应用场景*/
    @TableField(exist = false)
    private String[] applicationScenariosList;

    /*关联典型问题*/
    @TableField(exist = false)
    private String[] typicalProblemList;

    /*关联设计指导*/
    @TableField(exist = false)
    private String[] designGuideList;

    @TableField(exist = false)
    private List<Territory> territories;

    @TableField(exist = false)
    private List<Label> labels;

    @TableField(exist = false)
    private List<Map<String,Object>> statuss;
    /**
     * 知识层级
     */
    @TableField(exist = false)
    private String knowledgeLevel;

    @TableField(exist = false)
    private List<Map> applicationScenariosNames;

    @TableField(exist = false)
    private List<Map> typicalProblems;

    @TableField(exist = false)
    private List<Map> designGuides;

}
